home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Mac Game Programming Gurus / TricksOfTheMacGameProgrammingGurus.iso / More Source / C⁄C++ / CModalProgress 1.1 / main.cp < prev    next >
Text File  |  1995-02-18  |  3KB  |  147 lines

  1. // ===========================================================================
  2. //    main.cp
  3. //
  4. //    This file contains the main program for the example application to
  5. //    demonstrate the functionality of the CModalProgress class.
  6. //
  7. //    Copyright 1994 Alysoft Solutions. All rights reserved.
  8. //
  9. // ===========================================================================
  10.  
  11. #include "CTestDialogs.h"
  12.  
  13. #define kDialogResID                        6000
  14. #define    kProgressBarItem                    4
  15. #define kProgressTextItem                    5
  16. #define kInfiniteBarItem                    7
  17. #define    kMaxNum                                1000
  18.  
  19. #define    kMenubarResID                        128
  20. #define    kAppleMenu                            128
  21. #define    kFileMenu                            129
  22. #define    kEditMenu                            130
  23. #define    kDialogMenu                            131
  24.  
  25. #define    kQuitItem                            1
  26.  
  27. #define    kTestDialog1                        1
  28. #define    kTestDialog2                        2
  29. #define    kTestDialog3                        3
  30. #define    kTestDialog4                        4
  31.  
  32. Boolean    keepGoing = true ;
  33.  
  34. void InitMacintosh(void) ;
  35. void HandleMenuSelection(short menu, short item) ;
  36.  
  37. void SetupMenus()
  38. {
  39.     Handle ourMenus;
  40.  
  41.     ourMenus = GetNewMBar(kMenubarResID);
  42.     if (ourMenus)
  43.     {
  44.         SetMenuBar(ourMenus);
  45.         AddResMenu(GetMHandle(kAppleMenu),'DRVR') ;
  46.         DrawMenuBar();
  47.     }
  48.     else
  49.     {
  50.         ExitToShell();
  51.     }
  52. }
  53.  
  54. void HandleMenuSelection(short menu, short item)
  55. {
  56.     if (menu != 0)
  57.     {
  58.         switch (menu)
  59.         {
  60.             case kFileMenu:
  61.                 if (item == kQuitItem)
  62.                     keepGoing = false ;
  63.                 break ;
  64.             
  65.             case kDialogMenu:
  66.                 switch (item)
  67.                 {
  68.                     case kTestDialog1:
  69.                         TestDialog1() ;
  70.                         break ;
  71.                         
  72.                     case kTestDialog2:
  73.                         TestDialog2() ;
  74.                         break ;
  75.                         
  76.                     case kTestDialog3:
  77.                         TestDialog3() ;
  78.                         break ;
  79.                         
  80.                     case kTestDialog4:
  81.                         TestDialog4() ;
  82.                         break ;
  83.                         
  84.                 }
  85.                 break ;
  86.         }
  87.         
  88.     }
  89.     HiliteMenu(0) ;
  90. }
  91.  
  92.  
  93. void InitMacintosh()
  94. {
  95.     MaxApplZone();
  96.     
  97.     InitGraf(&qd.thePort);
  98.     InitFonts();
  99.     FlushEvents(everyEvent, 0);
  100.     InitWindows();
  101.     InitMenus();
  102.     TEInit();
  103.     InitDialogs(0L);
  104.     InitCursor();
  105. }
  106.  
  107. main()
  108. {
  109.     WindowPtr                    theWindow ;
  110.     EventRecord                    theEvent ;
  111.     Boolean                        ok ;
  112.     
  113.     InitMacintosh() ;
  114.     
  115.     SetupMenus() ;
  116.  
  117.     while (keepGoing)
  118.     {
  119.         ok = GetNextEvent(everyEvent, &theEvent) ;
  120.         if (ok)
  121.             switch(theEvent.what)
  122.             {
  123.                 case mouseDown:
  124.                     if (FindWindow(theEvent.where, &theWindow) == inMenuBar)
  125.                     {
  126.                         long  menuSelection ;
  127.                         menuSelection = MenuSelect(theEvent.where) ;
  128.                         HandleMenuSelection(HiWord(menuSelection), LoWord(menuSelection)) ;
  129.                     }
  130.                     break ;
  131.                 
  132.                 case keyDown:
  133.                     char    theChar = theEvent.message & charCodeMask;
  134.                     long    menuSelection = MenuKey(theChar);
  135.                     
  136.                     if (HiWord(menuSelection) != 0)
  137.                         HandleMenuSelection(HiWord(menuSelection), LoWord(menuSelection)) ;
  138.                     break ;
  139.                     
  140.                 case updateEvt:
  141.                     /* Update what ?? */
  142.                     break ;
  143.             }
  144.     }
  145.     return 0 ;
  146. }
  147.